-
Notifications
You must be signed in to change notification settings - Fork 8.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[a11y] Announce new tab/pane upon creation #13575
base: main
Are you sure you want to change the base?
[a11y] Announce new tab/pane upon creation #13575
Conversation
This comment has been minimized.
This comment has been minimized.
|
oops, doesn't work for duplicate tab. Should be easy to fix. I should check duplicate pane too. |
This comment has been minimized.
This comment has been minimized.
38ac9c5
to
0473430
Compare
@msftbot merge this in 10 minutes |
This comment was marked as outdated.
This comment was marked as outdated.
<value>A new tab for the "{}" profile was created successfully</value> | ||
<comment>{} will be replaced with the name of the profile (i.e. PowerShell, Command Prompt, etc.). The name may span multiple words. This announcement is read by a screen reader.</comment> | ||
</data> | ||
<data name="SplitPaneAnnouncement" xml:space="preserve"> | ||
<value>A new pane for the "{}" profile was created successfully</value> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the wording here throws me a bit (feels clunky).. gut check how it sounds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A11y team requested: "profile name created successfully"
We've diverged a bit since then haha. I find value in explicitly saying "pane" or "tab". I also think saying "profile" is important because some profile names could be weird. That said, what if we change it to...
"{}" pane/tab created successfully
It's more succinct? But there's still some doubts when it comes to localization. Thoughts?
@@ -630,6 +635,11 @@ namespace winrt::TerminalApp::implementation | |||
|
|||
if (auto page{ weakThis.get() }) | |||
{ | |||
page->_processingCommandlineArgs = true; | |||
auto finishProcessing = wil::scope_exit([&page]() { | |||
page->_processingCommandlineArgs = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.... Can't you just use _startupState <= StartupState::Initialized
instead of introducing a new member?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No because we're trying to suppress notifications when processing commandline args regardless of initialization step. So your proposal works for wt.exe args from Run, but not from commandline mode in the command palette.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, i am of two minds. I don't know if I would be surprised if they were suppressed if I just typed in the command that made it happen.
NVDA will always filter out notifications from terminal (see nvaccess/nvda#13261). Are these being sent by the |
These aren't sent by Tested this with NVDA and NVDA does read out these notifications, probably for the reason above. |
@@ -630,6 +635,11 @@ namespace winrt::TerminalApp::implementation | |||
|
|||
if (auto page{ weakThis.get() }) | |||
{ | |||
page->_processingCommandlineArgs = true; | |||
auto finishProcessing = wil::scope_exit([&page]() { | |||
page->_processingCommandlineArgs = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, i am of two minds. I don't know if I would be surprised if they were suppressed if I just typed in the command that made it happen.
Summary of the Pull Request
Makes the automation peer for the
TerminalPage
announce that a new tab/pane was created successfully. In order to do this, we need to store the automation peer forTerminalPage
. Then we have easy access to dispatch notifications from it.Closes #12038
Validation Steps Performed
Open a new tab/pane with Narrator active.